package summer.codegenerator.common.util;

import java.io.File;
import java.io.FileInputStream;
import java.io.FileReader;
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.Reader;
import java.net.URISyntaxException;

/**
 * 
 *
 * @author jiangz
 * @version 1.0 Created on 2019年9月23日 上午10:48:00
 */
public class JSONFileReader {

	/**
	 * 默认读取config文件夹的JSON文件
	 *
	 * 
	 * @param fileName						文件名
	 * @param removeSingleLineComment		删除单行注释
	 * @return
	 * @author: jiangz
	 * @date: Created on 2019年9月23日 上午11:22:24
	 */
	public static String readFromJSONFile(String fileName, Boolean removeSingleLineComment) {
		try {
			String filePath = JSONFileReader.class.getResource("/").toURI().getPath() + File.separator
					+ fileName;
			File jsonFile = new File(filePath);
			FileReader fileReader = new FileReader(jsonFile);
			Reader reader = new InputStreamReader(new FileInputStream(jsonFile), "utf-8");

			int ch = 0;
			StringBuffer sb = new StringBuffer();
			while ((ch = reader.read()) != -1) {
				sb.append((char) ch);
			}

			fileReader.close();
			reader.close();

			String jsonStr = sb.toString();
			if (removeSingleLineComment) {
				jsonStr = jsonStr.replaceAll("\\s+//.*(\r|\n|\r\n|\n\r)", "");
			}
			return jsonStr;
		} catch (URISyntaxException e) {
			e.printStackTrace();
		} catch (IOException e) {
			e.printStackTrace();
		}
		return null;
	}
}
